This invention relates to methods and apparatus for transmitting signals between devices using Universal Serial Bus ports, and, in particular, to an method for allowing communications between devices using such ports over an extended range.
Universal Serial Bus (USB) is a technology designed to permit a wide range of peripherals to be attached to personal computers by the average user. Since the technology supports all of the common peripheral devices such as keyboards, mice, speakers, modems, joysticks, cameras and many others, it will replace the serial and parallel ports in use today. The Apple iMac (Trade Mark), for example, supports only USB ports. In addition, almost every personal computer (PC) manufactured since 1997 has been equipped with USB ports.
USB was created by an alliance of seven of the largest companies in the computer and communication markets. Those companies were Intel, Compaq, Microsoft, NorTel, NEC, Digital and IBM. The specifications defining USB (e.g. Intel et al., Universal Serial Bus Specification, Revision 1.0, January 1996; and updated as Revision 1.1 in Sep. 23, 1998, and subsequent updates and modifications (such as draft Revision 2.0)xe2x80x94hereinafter collectively referred to as the xe2x80x9cUSB Specificationxe2x80x9d, which term can include future modifications and revisions) are non-proprietary and are managed by an open industry organization known as the USB Forum. The USB Specification establishes a number of criteria which must be met in order to comply to USB standards. The USB Specification also defines a number of terms, which definitions are adopted for the purposes of this specification.
For example, it is a requirement of Revision 1.0 of the USB Specification that a single USB domain shall support up to 127 devices operating over a shared medium providing a maximum bandwidth of 12 Mbps. Draft Revision 2.0 allows, however, a bandwidth of 480 Mbps, thus demonstrating modification of the USB Specification.
All known USB Specifications, however, currently limit the distance that a device can be separated from its host PC to 5 meters. By using a series of USB Hubsxe2x80x94devices that are intended to support increased populations rather than increased distancesxe2x80x94this distance limitation can be increased, in theory, to 30 meters. This multiple hub solution is both expensive and clumsy. For example, to support a single device at a range of 30 meters the consumer must purchase five hubs at a current cost of about $50 US each. In addition, at least two of these hubs must be provided with electrical power. Since the individual cables between hubs are limited to 5 meters each, it is also likely that some of the hubs would have to be positioned in very inconvenient and insecure locations.
There is therefore a need for methods and apparatus to allow USB devices to be positioned at greater distances from the host PC. For example, an uninterrupted distance of at least 100 meters is required for compatibility with the standards governing the cabling of commercial buildings (see, for example, TIA/EIA-568-A, Commercial Building Telecommunications Cabling Standard, Telecommunications Industry Association, October 1995). Meeting this standard must be accomplished without the need for intermediate repeaters since distribution cabling is not normally accessible between its end-points at, for example, the Telecommunications Closet and the Work Area. Furthermore, even if the cable were to be accessible, the cabling standard does not allow active devices to be inserted other than at the end-points.
Providing for an extended range capability would also create new applications for USB devices as well as facilitating existing ones. For example, a simple residential or SOHO (small office, home office) surveillance system could be constructed by connecting consumer quality cameras to a central PC. An overhead mounted monitor could be controlled by a remote keyboard or mouse. A door-phone entrance system could be monitored from any office in a commercial building. Many other applications are possible.
Currently, however, the USB Specifications do not permit the use of extended ranges. For example, it is a further requirement of the USB Specification that the access of each device to the shared communications bus is controlled by a single Host Controller. It is also specified that when the Host Controller instructs a particular device to place its information onto the shared bus, the requested information must be received by the Host Controller within sixteen (16) xe2x80x9cbit-timesxe2x80x9d of said Host Controller issuing said instruction. In practise, this ensures that the USB Specification provides for a high efficiency of bandwidth utilization by limiting the period during which no information is being transmitted. However, these requirements also limit the physical range of USB devices since one bit-time at 12 Mbps is equivalent to the time taken for an electronic signal to traverse approximately 17 meters of copper cable, and an even shorter distance for one bit-time at 480 Mbps. Further, although the USB device must respond to a request from the Host Controller within 16 bit-times, 7.5 bit-times is allocated for delay within a USB device and its associated 5 meter cable. This allocation retains only 8.5 bit-times at 12 Mbps for additional cable delay. The time represented by 8.5 bit-times is equivalent to the delay incurred by electronic signals in traversing approximately 144 meters of cable. However, this cable length is insufficient to satisfy the round-trip cable length of 200 meters required by the premise cabling specification.
Thus, it is not currently possible to provide USB devices which are separated over an extended distance.
However, it is a further feature of the USB Specification that the USB Specification (or protocol) segregates access to the shared bus into discrete units known as xe2x80x9cframesxe2x80x9d. Each frame is designed to last for a period of 1 ms.
Further, the USB Specification also requires that at least four separate types of data streams or xe2x80x9ctrafficxe2x80x9d are recognized, namely isochronous transfers, control transfers, interrupt transfers and bulk transfers.
Isochronous data transfer is characterised as being a data transfer wherein data flows essentially continuously, and at a steady rate, in close timing with the ability of the receiving mechanism to receive and use the incoming data.
In particular, it should be noted that it is an aspect of isochronous transfers that timely delivery of information is ensured at the expense of potential transient losses in the data stream. In particular, there is no attempt to retransmit any data that may have been lost in previous transmissions. For example, With an isochronous video signal, loss of one frame of information is generally not significant, and there is no interest in retrieving the lost frame. Instead, the host controller is typically more concerned with transmitting or receiving the current frame. Accordingly, isochronous data transfer is said to be a xe2x80x9ctime-relevantxe2x80x9d data transfer system.
This type of data transfer is distinguished from asynchronous data transfer, which pertains to processes that proceed independently of each other until a dependent process has to xe2x80x9cinterruptxe2x80x9d the other process, and synchronous data transfer, which pertains to processes in which one process has to wait on the completion of an event in another process before continuing. Accordingly, these data transfer methods are said to be non-time-relevant. Instead, a correct response to any request is required.
The current invention therefore uses the fundamental characteristics of isochronous and asynchronous data transfer, and more generally any time relevant or non-time-relevant data transmission, and the existence of regular protocol frames in order to provide methods and apparatus to enable data transmission over extended distances
Accordingly, while USB technology has proven to be useful, it would still be desirable to provide improvements to the technology by providing a method and apparatus for enabling data transmission equipment, and in particular, time relevant or non-time relevant data transmission equipment utilizing the USB Specification, to be used over an extended range.
Therefore, it is an object of the present invention to provide methods and apparatus to enable devices, hubs and controllers and other devices that conform to the USB Specification to communicate over distances greater than that currently permitted under said USB Specification.
It is a further object of the present invention that such extended range be achieved without the need for intermediate hubs, repeaters or other methods of electronic signal regeneration.
It is a further object of the present invention that no hardware or software changes need be made to the existing devices, hubs and controllers supported by the system, and in particular, to either isochronous or asynchronous systems operating under the USB Specification. The invention, thereby, may be incorporated into networks composed of both conventional range and extended range devices.
It is a further object of the present invention that the apparatus be very cost effective, consistent with the broadest population of devices targeted by the USB industry.
These and other objects of the invention, which will become apparent herein, are attained by the present invention which provides a local expander connected to a host controller and a remote expander connected to a peripheral device, wherein signals between the host controller and the peripheral device are processed in the local and/or remote expander so as to allow the host controller and peripheral device to be located at distances greater than normally specified in the USB Specification.
Accordingly, the present invention, in its most general form, provides a method for transmitting data between a host controller and a peripheral device over an extended distance; said method comprising:
a. feeding a first original, outgoing digital signal from a host controller to a local expander unit;
b. optionally converting said outgoing digital signals into a converted outgoing signal having a format suitable for transmission over extended distances;
c. transmitting either said outgoing digital signal or said converted outgoing signal, as a outgoing transmission signal, over a signal distribution system;
d. receiving said outgoing transmission signal at a remote expander unit;
e. optionally converting said outgoing transmission signal to said first original outgoing digital signal;
f. delivering said first original outgoing digital signal from said remote expander to at least one peripheral device;
g. receiving, at said remote expander, a reply digital signal from said peripheral device;
h. optionally converting said reply digital signal into a converted reply signal having a format suitable for transmission over extended distances;
i. transmitting said reply digital signal or said converted reply signal as a reply transmission signal over said signal distribution system;
j. receiving said reply transmission signal at said local expander;
k. optionally converting said reply transmission signal to said original reply digital signal;
l. storing said reply digital signal as a stored reply digital signal until the receipt of a subsequent original, outgoing digital signal from said host controller, which subsequent signal is the same as, or similar to, said first original outgoing digital signal; and
m. forwarding said stored reply digital signal to said host controller in response to said subsequent original outgoing digital signal.
With respect to an isochronous data stream, and in general, a time relevant data stream, said first or said subsequent original, outgoing digital signal is a request for time-relevant data, and preferably, for an isochronous data stream.
For the purposes of the present specification, the term xe2x80x9ctime relevant data steamxe2x80x9d is meant to relate to data streams such as isochronous data streams wherein loss of a frame from a previous transmission is of minor consequence and therefore, does not need to be retransmitted.
In a preferred embodiment, all digital signals conform to the USB Specification (other than for the distance between devices), and all digital signals, and in particular, the reply digital signal, represent isochronous data.
In step (I), it is stated that the digital signal is stored. This storage period, and any other storage period referred to in the present specification, may be a very short time period. For example, the case where the reply signal is received in time to respond to the original digital signal, the reply signal may be also immediately forwarded with minimal storage time.
In a further preferred embodiment, the present invention provides a method for transmission of isochronous data according to the USB Specification wherein isochronous data is transmitted from a peripheral device and is received by a host controller, said method comprising:
a. Transmitting a request for isochronous data from a host controller to a local expander;
b. Forwarding said request for isochronous data from said local expander to a remote expander over a signal distribution system;
c. Delivering said forwarded request for isochronous data to at least one peripheral device;
d. Transmitting the requested isochronous data from said peripheral device to said remote expander;
e. Forwarding said requested isochronous data from said remote expander to said local expander over said signal distribution system;
f. Storing said requested isochronous data in a packet buffer at said local expander;
g. Transmitting a subsequent request for isochronous data from said host controller to said local expander;
h. Receiving said subsequent request for isochronous data at said local expander; and,
I. Retrieving the stored isochronous data from said local expander;
II. Delivering said stored isochronous data to said host controller;
III. Forwarding said subsequent request for isochronous data from said local expander to said remote expander over said signal distribution system; and
IV. Repeating steps (c) through (h) for said subsequent request and any further subsequent requests for isochronous data.
In an even more preferred embodiment, the present invention provides a method additionally comprising the following steps after item xe2x80x9caxe2x80x9d described hereinabove, namely:
i. Determining whether said local expander already possesses said requested isochronous data;
ii. Generating a synthetic data packet if no such requested isochronous data is present; and
iii. Delivering said synthetic isochronous data to said host controller.
One method for generating the synthetic data packet is described hereinbelow.
The present invention also provides a method for transmission of isochronous data according to the USB Specification wherein isochronous data is transmitted from a host controller and is received by a peripheral device, said method comprising:
a) receiving, at a local expander, an original notification of isochronous a host controller;
b) forwarding said original notification of isochronous data from said local expander to a remote expander over a signal distribution system;
c) receiving, at a remote expander, said forwarded original notification of isochronous data;
d) delivering said forwarded notification of asynchronous data to at least one peripheral device;
e) receiving, at a local expander, an original isochronous data packet from a host controller;
f) forwarding said original isochronous data packet from said local expander to a remote expander over a signal distribution system;
g) receiving, at a remote expander, said forwarded original isochronous data packet; and
h) delivering said forwarded original isochronous data packet to at least one peripheral device.
With respect to an asynchronous data stream, and in general, a non-time relevant data stream, the present invention provides a method wherein said first or said subsequent original, outgoing digital signal is a request for time-relevant data, and preferably, for an asynchronous data stream.
For the purposes of the present specification, the term xe2x80x9cnontime-relevant dataxe2x80x9d is meant to relate to data streams such as asynchronous data streams wherein loss of a frame from a previous transmission is not acceptable, and that current, correct transfer of information is required.
In a preferred embodiment, all digital signals conform to the USB Specification (other than for the distance between devices), and all digital signals, and in particular, the reply digital signal, represent asychronous data.
In a further preferred embodiment, the present invention provides a method for transmission of asynchronous data according to the USB Specification wherein asynchronous data is transmitted from a peripheral device and is received by a host controller, said method comprising:
a) receiving, at a local expander, an original request for asynchronous data from a host controller;
b) forwarding said original request for asynchronous data from said local expander to a remote expander over a signal distribution system;
c) receiving, at a remote expander, said forwarded original request for asynchronous data;
d) delivering said forwarded original request for asynchronous data to at least one peripheral device;
e) receiving, at said remote expander, the requested asynchronous data from said peripheral device;
f) forwarding said requested asynchronous data from said remote expander to said local expander over said signal distribution system;
g) storing, in a packet buffer at said local expander, said requested asynchronous data;
h) receiving, at said local expander, a subsequent request for asynchronous data from said host controller; and
i) forwarding said subsequent request for asynchronous data from said local expander to a remote expander over a signal distribution system;
ii) delivering said forwarded subsequent request for asynchronous data to at least one peripheral device;
iii) receiving, at said remote expander, the requested asynchronous data from said peripheral device;
i) additionally receiving, at said local expander, said subsequent request for asynchronous data from said host controller as in step (h); and
i) retrieving the stored asynchronous data from said packet buffer;
ii) delivering said retrieved asynchronous data to said host controller;
j) receiving, at said local expander, an outgoing acknowledgement signal from said host controller,
k) optionally converting said outgoing acknowledgement signal into a converted acknowledgement signal having a format suitable for transmission over extended distances;
l) transmitting either said outgoing acknowledgement signal or said converted acknowledgement signal, as an acknowledgement transmission signal, over a signal distribution system;
m) receiving, at a remote expander unit, said acknowledgement transmission signal;
n) optionally converting said acknowledgement transmission signal to said outgoing acknowledgement signal; and
o) delivering said outgoing acknowledgement signal from said remote expander to at least one peripheral device.
In a preferred feature, the method also provides the following additional steps after step (b) described hereinabove, namely:
i) Determining whether said local expander already possesses said requested asynchronous data;
ii) Generating a negative acknowledgement packet if no such requested asynchronous data is present; and
iii) Delivering said negative acknowledgement packet to said host controller.
In an even more preferred embodiment, the present invention also provides a method as described hereinabove with respect to the present invention, wherein said method provides a method for transmission of asynchronous data according to the USB Specification wherein asynchronous data is transmitted from a host controller and is received by a peripheral device, said method comprising:
a) receiving, at a local expander, an original notification of asynchronous data from a host controller,
b) forwarding said original notification of asynchronous data from said local expander to a remote expander over a signal distribution system;
c) receiving, at a remote expander, said forwarded original notification of asynchronous data;
d) delivering said forwarded notification of asynchronous data to at least one peripheral device;
e) receiving, at a local expander, an original asynchronous data packet from a host controller;
f) forwarding said original asynchronous data packet from said local expander to a remote expander over a signal distribution system;
g) receiving, at a remote expander, said forwarded original asynchronous data packet;
h) delivering said forwarded original asynchronous data packet to at least one peripheral device;
i) receiving, at said remote expander, an inbound acknowledgement packet from said peripheral device;
j) forwarding said inbound acknowledgement packet from said remote expander to said local expander over said signal distribution system;
k) storing, in a packet buffer at said local expander, said inbound acknowledgement packet;
l) receiving, at said local expander, a subsequent notification of asynchronous data from said host controller;
m) receiving, at said local expander, a subsequent asynchronous data packet from said host controller; and
i) retrieving said stored inbound acknowledgement packet from said packet buffer; and
ii) delivering said retrieved inbound acknowledgement packet to said host controller.
In a further preferment, the method described hereinabove additionally comprises the following steps, namely:
i) Determining whether said local expander already possesses said inbound acknowledgement packet;
ii) Generating a negative acknowledgement packet if no such inbound acknowledgement packet is present; and
iii) Delivering said negative acknowledgement packet to said host controller.
In systems wherein a guard time is imposed after a data packet is transmitted (in order to prevent premature transmission of another packet), a preferred embodiment of the present invention also provides a method as described hereinabove additionally comprising the following stages:
a) Receiving, at a remote expander, an outbound data packet,
b) Determining, at a remote expander, the transfer type of said outbound data packet,
c) Forwarding said outbound data packet from said remote expander to a USB device,
d) Setting the value of a transmission guard timer to a value that is that is dependent upon said determined transfer type; and
e) Inhibiting further outbound transmissions until said guard timer has expired.
In a preferred embodiment for either a time relevant or non-time relevant data transmission, the extended distance exceeds 5 meters, more preferably, exceeds 30 meters, and still more preferably, equals or exceeds 100 meters. In particular, the distance between the local expander and the remote expander exceeds 5 meters, more preferably, exceeds 30 meters, and still more preferably, equals or exceeds 100 meters.
As with the prior art, the method of the present invention can be used in a systems wherein said host controller is a PC, and said peripheral device is, for example, a camera, a mouse, a keyboard, a monitor or a speaker or speakers.
While a number of different signal distribution systems might be used, preferably, the signal distribution system utilizes unshielded twisted pair (UTP) wiring (or cabling). However, other signal distribution systems such as, for example, coaxial cable, shielded twisted pair, wireless transmission, or fibre optic systems using fibre optic cabling, can also be utilized.
In another aspect, the present invention also provides an apparatus for transmission of a digital signal over an extended distance comprising:
a local expander comprising means for receiving a request for a data signal from a host controller which host controller is connected to said local expander;
means in said local expander for generating an outgoing transmission signal;
means in said local expander for sending said outgoing transmission signal to a remote expander, which signals are sent over a signal distribution system;
a remote expander comprising means for receiving said outgoing transmission signal;
means in said remote expander for generating a digital signal from said outgoing transmission signal;
means in said remote expander for forwarding said digital signal to at least one peripheral device, which peripheral device is connected to said remote expander;
means in said remote expander for receiving inbound digital signals from said peripheral devices;
means in said remote expander for converting said inbound digital signals to an inbound transmission signal;
means in said remote expander for sending said inbound transmission signal to said local expander, which signals are sent over said signal distribution system;
means in said local expander for receiving said inbound transmission signal;
means in said local expander for generating a digital signal from said inbound transmission; and
means in said remote expander for forwarding said digital signal to said host controller.
In one embodiment, said data signal is a time relevant data signal, and preferably an isochronous data signal. With respect to time relevant data signals (or streams), preferably, the local expander additionally comprises:
a) means for storing said inbound signal as a stored inbound signal;
b) means for analysing said digital signal from said host controller to recognize a subsequent request for transmission of said time relevant digital signal; and
c) means for sending said stored inbound signal to said host controller in response to said subsequent request.
In an alternative embodiment, said data signal is a non-time relevant data signal, and preferably is an asychronous data signal. Accordingly, with respect to non-time relevant data signals, the present invention also provides an apparatus for transmission of a digital signal over an extended distance comprising:
a) a local expander comprising means for receiving a request for a non-time-relevant data signal, preferably wherein said non-time-relevant data signal is a digital signal which conforms to the USB Specification, from a host controller which host controller is connected to said local expander;
b) means in said local expander for generating an outgoing transmission signal;
c) means in said local expander for sending said outgoing transmission signal to a remote expander, which signals are sent over a signal distribution system;
d) a remote expander comprising means for receiving said outgoing transmission signal;
e) means in said remote expander for generating a digital signal from said outgoing transmission signal;
f) means in said remote expander for forwarding said digital signal to at least one peripheral device, which peripheral device is connected to said remote expander;
g) means in said remote expander for receiving inbound digital signals from said peripheral devices;
h) means in said remote expander for converting said inbound digital signals to an inbound transmission signal;
i) means in said remote expander for sending said inbound transmission signal to said local expander, which signals are sent over said signal distribution system;
j) means in said local expander for receiving said inbound transmission signal;
k) means in said local expander for generating a digital signal from said inbound transmission; and
l) means in said remote expander for forwarding said digital signal to said host controller.
Preferably, said non-time-relevant signal represents asynchronous data.
In a preferred embodiment, the present invention also provides an apparatus wherein said local expander additionally comprises:
a) means for storing said inbound signal as a stored inbound signal;
b) means for analysing said digital signal from said host controller to recognize a subsequent request for transmission of said non time-relevant digital signal; and
c) means for sending said stored inbound signal to said host controller in response to said subsequent request.
Although a number of signal distribution systems may be used, as described hereinabove, preferably the signals are transmitted over a signal distribution system which utilizes Unshielded Twisted Pair (UTP) copper wire. Using this method of device connection provides a low cost, effective means for data-transmission. However, in another embodiment of the system, signals can be transmitted over coaxial cable, shielded cable, wireless transmission methods, or over a fibre optic distribution system.
While the methods and apparatus of the present invention have general utility in a variety of applications, it is of primary importance that the data transmission methods and apparatus of the present invention allow for compliance with the USB Specifications (with the exception of the distance requirements). Preferably, the original signal from the host controller is a request for data from a peripheral device. Additionally, preferably the data requested is from peripheral devices such as cameras, keyboards, mice, monitors, speakers, and the like.
For time relevant data streams, and in particular, during operations utilizing the methods and apparatus of the present invention in applications involving extended range transmissions, it is preferred that the apparatus be preferably capable of recognizing isochronous transfers, when they are received. The data contained within the isochronous transfer is then stored within the system for a period of time. Accordingly, the data that is received during a particular frame may be stored and then transmitted in a following frame. Additionally, a further preferred embodiment of the present invention is that isochronous transfers originating from a plurality of sources may be stored, and retransmitted.
In the operation of a preferred embodiment of the current invention, a host controller (which preferably is a PC) may issue a request to a device for the transfer of isochronous data. The request is received by the apparatus of the present invention, and retransmitted to the target device. When the requested isochronous transfer response is received by the apparatus from the target device, the isochronous data is stored within the internal memory of the apparatus. During a subsequent frame, the host controller will again issue a request to the target device for the transfer of isochronous data. The apparatus will again retransmit this request to the target device. In addition, however, the apparatus recognizes that it currently has isochronous data from the target device stored in its internal memory. The apparatus sends this data to the host controller within the 16 bit-time margin relevant to the current request within the current frame. In this manner, the apparatus uses data collected in a previous frame to satisfy the response time requirement of a current frame.
When a packet is received from the target device, and no further request for data is received from the host controller, the last data packet or packets received and stored (hereinafter the xe2x80x9cvestigialxe2x80x9d packets) are preferably removed from the system so that they are not transmitted when and if a further request is received from the host controller. Preferably, this is achieved by modification of the method described hereinabove by additionally comprising the following stages, namely:
i) Detecting when a new frame has begun;
ii) Examining the properties of each packet buffer;
iii) Determining whether the data packet contained in said examined packet buffer has been stored for at least one complete frame period;
iv) Discarding said contained data packet if said contained data packet has been stored for at least one complete frame period; and
v) Repeating steps (i) through (iv) for each packet buffer in the system.
In an alternative embodiment of the invention, the apparatus handles the first request for the inbound transfer of isochronous data in a unique manner. This unique manner requires the apparatus to generate its own synthetic inbound data packet, and generation of this synthetic data packet is described hereinbelow.
It is possible that packets sent from the Remote Expander may not arrive at the Local Expander in the order expected by the Local Expander. In order to avoid difficulties which might be caused by this occurrence, the method of the present invention also preferably comprises the following stages, namely:
i) Storing the address of the requested peripheral device at said remote expander unit after the local expander has delivered the forwarded request for isochronous data; and further comprising the following steps after transmitting the requested isochronous data from the peripheral device to the remote expander, namely:
i) Retrieving the address of said requested peripheral device at said remote expander unit; and
ii) Adding said retrieved address to said requested isochrbnous data.
With respect to non-time relevant data streams, and in particular, asynchronous data signals, streams or transfers, it is preferred, during practise of the method, or during use of the apparatus of the present invention, that the apparatus be preferably capable of recognizing asynchronous transfers, when they are received. The data contained within the asynchronous transfer is then stored-within the system for a period of time. Accordingly, the data that is received during a particular time period may be stored and then transmitted in a following time period. Additionally, a further preferred embodiment of the present invention is that asynchronous transfers originating from a plurality of sources may be stored, and retransmitted.
In the operation of a preferred embodiment of the current invention with respect to a non-time relevant data stream, and an asynchronous data stream in particular, a host controller (which preferably is a PC) may issue a request to a device for the transfer of asynchronous data. The request is received by the apparatus of the present invention, and retransmitted to the target device. When the requested asynchronous transfer response is received by the apparatus from the target device, the asynchronous data is stored within the internal memory of the apparatus. During a subsequent time period, the host controller will again issue a request to the target device for the transfer of asynchronous data. The apparatus will again retransmit this request to the target device. In addition, however, the apparatus recognizes that it currently has asynchronous data from the target device stored in its internal memory. The apparatus sends this data to the host controller within the 16 bit-time margin relevant to the current request within the current time period. In this manner, the apparatus uses data collected in a previous time period to satisfy the response time requirement of a current time period.
The term xe2x80x9ctime periodxe2x80x9d can be used to apply to a selected time period of interest (which can include a portion of a frame, a plurality of frames, or the like), but most preferably is a single xe2x80x9cframexe2x80x9d as defined in the USB Specification.
The xe2x80x9chost controllerxe2x80x9d is preferably a PC, as has been previously stated. However, the host controller may also be part of a computer system, and in particular, part of a networked computer system.
By utilizing the method and apparatus of the present invention, it is possible to have transfer of time relevant data or non-time relevant data, and isochronous data or asynchronous data in particular, over extended distances, and in particular, over distances greater than specified in the USB Specification.
However, other features of the present invention, as well as other objects and advantages attendant thereto, are set forth in the following description and the accompanying drawings in which like reference numerals depict like elements.